cTREEVIEW Class Wrapper / DLL - Version 02.01.00+
-------------------------------------------------

* See help for details

cTREEVIEW Class Wrapper / DLL - Version 02.00.00
------------------------------------------------

The award-winning TreeView Class wrapper has been rebuilt and optimised
using APIs plus many new features added. 5 Tutorial applications are included
to demonstrate sets of features to help make it easier to understand and
implement into your own applications. The Wrapper contains several files
that can either be included in an appplication or compiled into a DLL (by
Default).


DLL/Class Wrapper features include:-

o ... 23 Properties & 29 Subroutines/Functions - total of 52 features! All
      properties, functions and subrotines are fully commented and cleanly
      formated plus full Object Browser help.
o ... Multi-Node selection with keyboard & mouse support (not supported by 
      Microsoft in the TreeView control)
    o ... Select individual/all node(s)
    o ... Toggle individual/all node(s)
    o ... Clear individual/all node(s)
    o ... Standard or Custom highlight fore/back colours whilst maintaining
          original colours
    o ... Optional Bold state for selected nodes
    o ... Optional NoClearOnSpaceClick for spacebar selection operation
    o ... Enumeration of selected nodes
o ... Drag and Drop
    o ... Simple 'event' implementation 
    o ... Auto-scroll viewport during drag operation with customisable timing
          (not supported by Microsoft in the TreeView control)
    o ... Auto-expand collapsed parent nodes during drag operation with 
          customisable timing (not supported by Microsoft in the TreeView
          control)
o ... Load/Save entire treeview layout with full node properties to binary
      or Xml 
      formats
o ... get/set Flat/Thin/3d appearance
o ... Get/Set OverlayIcon state i.e. shortcut or sharing icon overlay
o ... Cut Icon read/write property
o ... True enabled/disabled/locked state appearance
o ... Scroll treeview Up/ Down/ PageUp/ PageDown/ Home/ End using code 
o ... Enable/disable node ToolTips
o ... SetFocusNode draws focus retangle without selecting a node
o ... Extended Add/Rename/Delete nodes 
o ... Copy and move nodes through code &/or Drag'n'Drop including parent
      nodes onto child nodes (not normally possible!)
    o ... CopyNode function can be cancelled during processing 
o ... Find node using text and (optionally) key properties 
o ... Fast clear a treeview 
o ... IsRootNode checks if a node is a root node 
o ... IsParentNode checks if a node is a parent of another 
o ... IsChildNode checks if a node is a child of another 
o ... Safe get parent node text 
o ... Right-click context menu (before/after Keypress/click event)
    o ... supports the WinMenu key & Right mouse button 
o ... Collapse/expand all nodes 
o ... Collapse/expand all child nodes 
o ... Enable/disable redraw 
o ... Get/Set FirstVisibleNode & Get LastNodeViewable properties. 
o ... ChildParentKeys & FullKeyPath returns either an array of keys or a path
      full of keys
o ... NodeNestingLevel returns the nesting level of a passed node
o ... GetSelectedNodeCoords returns the selected node's co-ordinates

Detailed and fully commented tutorial applications including highlighted
features:-

o ... BasiC features       [Level: Basic]
o ... Drag'n'Drop          [Level: Basic]
o ... Multi-Node Selection [Level: Basic]
o ... ADO - Load on Demand [Level: Basic]
    o ... Work with multiple tables of data 
    o ... Load on demand 

o ... ADO - Full Demo Prog [Level: Advanced]
    o ... Work with multiple tables of data 
    o ... Load on demand 
    o ... Add, Edit, copy, move and delete nodes and records 
    o ... node specific Open/Closed/Drag icons 
    o ... Find First/ Next/ Previous 
    o ... Label Edit 
    o ... Drag'n'Drop 
    o ... Node & TreeView context menus 
    o ... Cut/Copy/Paste through right-click context menu 
    o ... All functions are benchmarked with results displayed. 

As a bonus, I've included the following VB classes:- 
    o ... cDB.cls          - Encapsulates working with an Access Database
                             using ADO.
    o ... cColorDialog.cls - 
    o ... cBenchmark.cls   - Benchmarking routines
    o ... cHourglass.cls   - Simple class to manage the cursor - no
                             manual unloading required
    o ... xTimer.Cls       - [xTimers.Bas] Microsoft's code-based timer
                             class from the VB6 Coffee sample application.
    o ... cTags.Cls        - A dynamic variant class - more poserful than
                             an array.


cTREEVIEW Class Wrapper v01.00.03 with ADO Code Example
=======================================================

New features - Now cTREEVIEW class has 28 features! 

New cTREEVIEW Features include: Flat border; IsChildNode; CopyNode with
cancel option; Cut Icon state. ADO Example now supports: New Nodes/Records 
can be added; copy treeview node(s); Cut/Copy/Paste through right-click
context menu; and functions are now benchmarked with results displayed.

cTREEVIEW class fixes: If the destination or source node was not expanded
during a Move operation, an error was raised - only happens if nodes are
loaded on-demand.

ADO Example fixes: Adjusted pExpandNode to handle group nodes without hidden
nodes.

A special thanks to Zhu Jinyong for his suggestions for the ADO Example
including CopyNode, Cut/Copy/Paste plus finding the Exand Node error.



cTREEVIEW Class Wrapper v01.00.02 with ADO Code Example
=======================================================

New ADO example added now supporting: Load on demand; Find First/ Next/
Previous; Label Edit; Drag'n'Drop; Node & TreeView context menus; node
specific Open/ Closed/ Drag icons. New cTREEVIEW class features: Scroll
treeview Up/ Down/ PageUp/ PageDown/ Home/ End using code; Dragging with
auto-scrolling (not supported by Microsoft in the TreeView control);
NodeFirstViewable; & NodeLastViewable. 

ADO Example fixes: Find Next/Previous didn't work if branches already loaded.
cTREEVIEW class fixes: correct node drag icon displayed.

Original features include: fast clear a treeview; extended Add/Rename/Delete
nodes; move nodes through code &/or Drag'n'Drop including parent nodes onto
child nodes (not normally possible!); find node using text and (optionally)
key properties; check if a node is a parent of another; checks if a node is
a root node; a safe get parent node text; right-click context menu
(before/after click event); collapse/expand all nodes; collape/expand all
child nodes; enable/disable redraw.

This example shows how to:- work with multiple tables of data and load data
on demand. As a bonus, I've included cDB class that encapsulates working
with an Access Database using ADO. All code is heavily commented.

If there are any routines that you feel are missing or code/bug-fixes that
you wish to contribute, then please let me know and I'll add them in.



cTREEVIEW Class Wrapper v01.00.00 - First of its kind!
======================================================

The Internet is a place of vast knowledge. But when it can time to find help
with the TreeView control for a project that I was working on, very little
information could be found.

This is the first of two uploads (second example to follow in the near future
with ADO code) that will show how to fast clear a treeview; extended Add/
Rename/ Delete nodes; move nodes through code &/or Drag'n'Drop including
parent nodes onto child nodes (not normally possible!); find node using text
and (optionally) key properties; check if a node is a parent of another;
checks if a node is a root node; a safe get parent node text; right-click
context menu (before/ after click event); collapse/expand all nodes;
collape/expand all child nodes; enable/disable redraw.

All 16 TreeView features are wrapped into a simple to use class that can be
added into any project. A sample program shows how to use all of the class
wrapper routines plus all code is heavily documented. Help/tips has also
been added for VB's Object Browser.

If there are any routines that you feel are missing or code/bug-fixes that
you wish to contribute, then please let me know and I'll add them in.
